<?php namespace Admin\Controller;
use Hdphp\Controller\Controller;
//文章控制器
class ArcController extends CommonController{
	//定义一个属性：用来存实例化后的数据库模型对象
	private $model;
	//构造函数
	public function __construct(){
		//重写父级的构造函数，防止父级的构造函数被覆盖不能使用
		parent::__construct();
		//实例化arc模型
		$model = new \Common\Model\Arc;
		//将实例化的对象存入属性中
		$this->model = $model;
	}
	//文章显示首页
	public function index(){
		//分页处理先统计总数
		//sql语句SELECT count(*) FROM article join category on category_cid=cid where is_recycle=0;
		$total = Db::table('article')->join('category','category_cid','=','cid')->where("is_recycle=0")->count();
		//执行分页
		//指定每页显示的条数，make中为数据总数
		$page = Page::row(2)->make($total);
		//分配page到页面
		View::with('page',$page);
		
		//limit数据处理
		//SELECT * FROM article JOIN category ON category_cid=cid;
		$data = Db::table('article')->join('category','category_cid','=','cid')->field('aid,title,cname')->limit(Page::limit())->where("is_recycle=0")->get();
		View::with('data',$data);
		View::make();
	}
	//添加文章
	public function addArc(){
		//判断是否用户提交
		if(IS_POST){
			if($this->model->addData()){
				$this->success("添加成功",U('index'));
			}
			$this->error($this->model->getError());
			
		}
		//1.获取分类表中的分类
		$cate = Db::table('category')->get();
		//树状显示分类
		$cate = Data::tree($cate,'cname');
		//分配数据
		View::with('cate',$cate);
		
		//2.获取标签表中的标签
		$tag = Db::table('tag')->get();
		//分配数据
		View::with('tag',$tag);
		View::make();
	}
	//回收站首页
	public function recycle(){
		//分页处理***************
		//统计总数 SELECT count(*) FROM .....
		$total = Db::table('article')->join('category','category_cid','=','cid')->where("is_recycle=1")->count();
		//执行分页
		$page = Page::row(2)->make($total);
		View::with('page',$page);
		
		//数据处理***************
		//SELECT * FROM article JOIN category ON category_cid=cid;
		$data = Db::table('article')->join('category','category_cid','=','cid')->field('aid,title,cname')->limit(Page::limit())->where("is_recycle=1")->get();
		View::with('data',$data);
		View::make();
	}
	//删除到回收站
	public function del(){
		//先获取对应数据的aid
		$aid = Q('get.aid',0,'intval');
//		$this->model->where("aid={$aid}")->update(['is_recycle' => 1]);
		//将文章列表中内容删除到回收站，其实是将文章表中的is_recycle改为1
		$this->model->save(array('aid'=>$aid,'is_recycle'=>1));
		$this->success("删除成功",U('index'));
	}
	
	//彻底删除
	public function realDel(){
		//回收站中的彻底删除，即是将数据表中的数据删除
		//先获取对应数据的aid
		$aid = Q('get.aid',0,'intval');
		$this->model->where("aid={$aid}")->delete();
		$this->success("删除成功",U('recycle'));
	}	
	
	//还原到文章列表
	public function resetArc(){
		//获取对应数据的aid
		$aid = Q('get.aid',0,'intval');
		//将回收站内容还原到文章列表，其实是将文章表中的is_recycle改为0
		$this->model->save(array('aid'=>$aid,'is_recycle'=>0));
		$this->success("还原成功",U('recycle'));
	}
	
	//编辑文章
	public function editArc(){
		if(IS_POST){		
			if($this->model->editData()){
				View::success("编辑成功",U("index"));
			}
			View::error($this->model->getError());	
		}

		$aid = Q('get.aid',0,'intval');
		
		//获取文章表中的数据
		$data = $this->model->where("aid={$aid}")->find();
		View::with('arc',$data);
		//获取内容表中的数据
		$arcDataModel = new \Common\Model\Arcdata;
		$arcData = $arcDataModel->where("article_aid={$aid}")->find();
		View::with('arcData',$arcData);
		
		//2.获取所有分类
		$cateModel = new \Common\Model\Cate;
		$cate = Data::tree($cateModel->get(),'cname');
		View::with('cate',$cate);
		
		//3.获取标签
		$tagModel = new \Common\Model\Tag;
		$tag = $tagModel->get();
		View::with('tag',$tag);
		//确定所属标签，将所有标签存入到一个数组中，用lists（’字段名称’）
		$arcTagModel = new \Common\Model\Arctag;
		$tids = $arcTagModel->where("article_aid={$aid}")->lists("tag_tid");
		//三元表达式判断如果查询到数组就是该数组，否则返回一个空数组，避免在页面循环遍历数组出错
		$tids = $tids ? $tids : array();
		//分配
		View::with('tids',$tids);
		
		View::make();
	}
	
	
	
	
	
	
	
	
	
	
	
}	
